package cn.fl.repay.vo;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author: leon (pengli@58coin.com)
 * @createDate: 2020/4/30
 * @company: (C) Copyright 58BTC 2020
 * @since: JDK 1.8
 * @description: {"crCntNo":"1111","billId":"1111","acc_loan_no":"11111","settle_pay_amt":"123","data":[{"repay_period":"22222","repay_state":""}]}
 */
public class YilianRepayTrialVO {
    /**
     * 贷款合同编号
     */
    private String crCntNo;
    /**
     * 小贷账单id
     */
    private String billId;
    /**
     * 借据编号
     */
    private String acc_loan_no;
    /**
     * 结清应还金额
     */
    private String settle_pay_amt;
    /**
     * 结清应还本金
     */
    private String settle_pay_principal;
    /**
     * 结清应还利息
     */
    private String settle_pay_interest;
    /**
     * 结清应还罚息
     */
    private String settle_pay_overdue_interest;
    /**
     * 结清应还正常担保费
     */
    private String settle_pay_fee;
    /**
     * 结清应还逾期担保费
     */
    private String settle_pay_overdue_fee;
    /**
     * 总记录数
     */
    private Integer record_no;
    /**
     * 试算结果信息
     * 客户借据下借款期数还款计划明细
     */
    private List<RepayTrialResult> data;

    public String getCrCntNo() {
        return crCntNo;
    }

    public void setCrCntNo(String crCntNo) {
        this.crCntNo = crCntNo;
    }

    public String getBillId() {
        return billId;
    }

    public void setBillId(String billId) {
        this.billId = billId;
    }

    public String getAcc_loan_no() {
        return acc_loan_no;
    }

    public void setAcc_loan_no(String acc_loan_no) {
        this.acc_loan_no = acc_loan_no;
    }

    public String getSettle_pay_amt() {
        return settle_pay_amt;
    }

    public void setSettle_pay_amt(String settle_pay_amt) {
        this.settle_pay_amt = settle_pay_amt;
    }

    public String getSettle_pay_principal() {
        return settle_pay_principal;
    }

    public void setSettle_pay_principal(String settle_pay_principal) {
        this.settle_pay_principal = settle_pay_principal;
    }

    public String getSettle_pay_interest() {
        return settle_pay_interest;
    }

    public void setSettle_pay_interest(String settle_pay_interest) {
        this.settle_pay_interest = settle_pay_interest;
    }

    public String getSettle_pay_overdue_interest() {
        return settle_pay_overdue_interest;
    }

    public void setSettle_pay_overdue_interest(String settle_pay_overdue_interest) {
        this.settle_pay_overdue_interest = settle_pay_overdue_interest;
    }

    public String getSettle_pay_fee() {
        return settle_pay_fee;
    }

    public void setSettle_pay_fee(String settle_pay_fee) {
        this.settle_pay_fee = settle_pay_fee;
    }

    public String getSettle_pay_overdue_fee() {
        return settle_pay_overdue_fee;
    }

    public void setSettle_pay_overdue_fee(String settle_pay_overdue_fee) {
        this.settle_pay_overdue_fee = settle_pay_overdue_fee;
    }

    public Integer getRecord_no() {
        return record_no;
    }

    public void setRecord_no(Integer record_no) {
        this.record_no = record_no;
    }

    public List<RepayTrialResult> getData() {
        return data;
    }

    public void setData(List<RepayTrialResult> data) {
        this.data = data;
    }

    public static class RepayTrialResult {
        /**
         * 还款期次
         */
        private long repay_period;
        /**
         * 还款状态
         * NORMAL：正常（未过宽限期时的状态）
         * OVERDUE：逾期（超过宽限期且未还时的状态）
         * REPAID：已还（成功还款时的状态）
         *
         */
        private String repay_state;
        /**
         * 还款时间
         * YYYY/MM/DD HH:MI:SS，示例：2019/07/12 12:30:23
         * repay_state=REPAID时有值
         */
        private String repay_time;
        /**
         * 剩余应还金额
         * 还款状态为“NORMAL、OVERDUE”时取值应还金额，否则取值0
         */
        private BigDecimal remain_repay_amt;
        /**
         * 应还日期
         * 格式：YYYY/MM/DD，示例：2019/07/12
         */
        private String repay_date;
        /**
         * 应还金额
         * 应还本金+应还利息+应还罚息+应还正常担保费+应还逾期担保费
         */
        private BigDecimal repay_amt;
        /**
         * 应还本金
         */
        private BigDecimal repay_principal;
        /**
         * 应还利息
         */
        private BigDecimal repay_interest;
        /**
         * 应还罚息
         */
        private BigDecimal repay_overdue_interest;
        /**
         * 应还正常担保费
         * 等额本息：贷款金额×正常担保日利率×30
         * 到期一次性还本付息：贷款金额×正常担保日利率×(到期日期-起息日期)
         */
        private BigDecimal repay_fee;
        /**
         * 应还逾期担保费
         * 应还本金+应还利息+应还罚息+应还正常担保费+应还逾期担保费
         * repay_state=OVERDUE时金额大于0
         */
        private BigDecimal repay_overdue_fee;

        public long getRepay_period() {
            return repay_period;
        }

        public void setRepay_period(long repay_period) {
            this.repay_period = repay_period;
        }

        public String getRepay_state() {
            return repay_state;
        }

        public void setRepay_state(String repay_state) {
            this.repay_state = repay_state;
        }

        public String getRepay_time() {
            return repay_time;
        }

        public void setRepay_time(String repay_time) {
            this.repay_time = repay_time;
        }

        public BigDecimal getRemain_repay_amt() {
            return remain_repay_amt;
        }

        public void setRemain_repay_amt(BigDecimal remain_repay_amt) {
            this.remain_repay_amt = remain_repay_amt;
        }

        public String getRepay_date() {
            return repay_date;
        }

        public void setRepay_date(String repay_date) {
            this.repay_date = repay_date;
        }

        public BigDecimal getRepay_amt() {
            return repay_amt;
        }

        public void setRepay_amt(BigDecimal repay_amt) {
            this.repay_amt = repay_amt;
        }

        public BigDecimal getRepay_principal() {
            return repay_principal;
        }

        public void setRepay_principal(BigDecimal repay_principal) {
            this.repay_principal = repay_principal;
        }

        public BigDecimal getRepay_interest() {
            return repay_interest;
        }

        public void setRepay_interest(BigDecimal repay_interest) {
            this.repay_interest = repay_interest;
        }

        public BigDecimal getRepay_overdue_interest() {
            return repay_overdue_interest;
        }

        public void setRepay_overdue_interest(BigDecimal repay_overdue_interest) {
            this.repay_overdue_interest = repay_overdue_interest;
        }

        public BigDecimal getRepay_fee() {
            return repay_fee;
        }

        public void setRepay_fee(BigDecimal repay_fee) {
            this.repay_fee = repay_fee;
        }

        public BigDecimal getRepay_overdue_fee() {
            return repay_overdue_fee;
        }

        public void setRepay_overdue_fee(BigDecimal repay_overdue_fee) {
            this.repay_overdue_fee = repay_overdue_fee;
        }
    }
}
